package top.xuwuqiang.study.jacawebjdbc.dao;

import top.xuwuqiang.study.jacawebjdbc.entity.TbClass;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class TbClassDAO {
//    jdbc java数据库访问
//    dao 数据访问对象
//    entity 实体类，一般是描述数据的类
//    java.sql.Connection类就是数据库的连接类


//

    public static int insert(TbClass tbClass) throws SQLException {
//        连接到数据库
        Connection conn=DBHelper.getConnection();
//        设备添加的语句,一个?表示一个参数
        String sql="insert into tb_class(classname, classinfo) values(?, ?)";
//        Java的预处理
        PreparedStatement ps=conn.prepareStatement(sql);
//        设置？参数对应的值
        ps.setString(1, tbClass.getClassname());
        ps.setString(2, tbClass.getClassinfo());
//        执行语句,并获取语句影响的行数
        int i=ps.executeUpdate();
//        关闭数据库连接
        conn.close();
        return i;
    }


    public static List<TbClass>query() throws SQLException {
        List<TbClass>list=new ArrayList<>();
//        查询的语句
        Connection conn=DBHelper.getConnection();

//        查询语句
        String sql="select * from tb_class";
//      预处理sql语句
        PreparedStatement ps=conn.prepareStatement(sql);
//        执行查询并返回结果集
        ResultSet rs= ps.executeQuery();
//查询结果集的next是读取下一行数据，读取到就返回真，没有就返回假
        while (rs.next()){
//            将数据库的记录转换为java对向
            TbClass tbClass=new TbClass();
//            re.get数据类型（“数据表中字段名称”）就是获取查询结果中指定字段的数据
            tbClass.setId(rs.getInt("id"));
            tbClass.setClassname(rs.getString("classname"));
            tbClass.setClassinfo(rs.getString("classinfo"));
//            java的Date类型对应的是数据库api的Timestamp类型
            tbClass.setCreated(rs.getTimestamp("created"));
//            添加到集合
            list.add(tbClass);
        }

        conn.close();
        return list;

    }


    public static  int delete(Integer id) throws SQLException {
        Connection conn=DBHelper.getConnection();
        String sql="delete from tb_class where id=?";
        PreparedStatement ps= conn.prepareStatement(sql);
        ps.setInt(1,id);
        int i=ps.executeUpdate();
        conn.close();
        return i;



    }

}
